# -*- coding: utf-8 -*-
# 从内存中读写str

import io
from io import StringIO
from io import BytesIO
import sys
import os
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')

f = StringIO()
f.write('hello')
f.write(' ')
f.write('world!')
print(f.getvalue())


f2 =StringIO('Hello! \n HI! \n Goodbye!')
while True:
	s = f2.readline()
	if s=='':
		break
	print(s.strip())

# BytesIO 实现了在内存中读写bytes
f = BytesIO()
f.write('中文'.encode('utf-8'))
print(f.getvalue())

f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
print(f.read())

# 操作目录和文件
print(os.name) #操作系统类型
# print(os.uname()) 系统详细信息，window上不提供
print(os.environ) # 输出环境变量
print('\n',os.environ.get('path'))

# 查看当前目录的绝对路径
print(os.path.abspath('.'))

# 在某个目录下创建一个新目录，首先把新目录的完整路径表示出来
os.path.join('E:\\python_study','testdir')

# 然后创建一个目录
os.mkdir('E:\\python_study\\testdir')

# 删掉一个目录
os.rmdir('E:\\python_study\\testdir')

# 拆分文件或者目录名
print(os.path.split('E:\\python_study'))
print(os.path.split('E:\\python_study\\filter.py'))

# 获得文件扩展名
print(os.path.splitext('E:\\python_study\\filter.py'))

# 操作文件,对文件重命名
os.rename('README.md','README2.md')
os.rename('README2.md','README.md')

# 删除文件
# os.remove(filename)

# 列出当前目录下，所有的文件夹
print([x for x in os.listdir('../') if os.path.isdir(x)])

# 列出所有.py文件
print([x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1] == '.py'])


